home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / +system+ / tools / sound / ahi / developer / devloper.lzx / include / C / libraries / ahi_sub.h
C/C++ Source or Header  |  1979-02-23  |  3KB  |  127 lines

  1. #ifndef LIBRARIES_AHISUB_H
  2. #define LIBRARIES_AHISUB_H
  3.  
  4. /*
  5. **    $VER: ahi_sub.h 4.1 (2.4.97)
  6. **
  7. **    ahi/[driver].audio definitions
  8. **
  9. **    (C) Copyright 1994-1997 Martin Blom
  10. **    All Rights Reserved.
  11. **
  12. ** (TAB SIZE: 8)
  13. */
  14.  
  15. /*****************************************************************************/
  16.  
  17.  
  18. #ifndef EXEC_TYPES_H
  19. #include <exec/types.h>
  20. #endif
  21.  
  22. #ifndef UTILITY_TAGITEM_H
  23. #include <utility/tagitem.h>
  24. #endif
  25.  
  26. #ifndef DEVICES_AHI_H
  27. #include <devices/ahi.h>
  28. #endif
  29.  
  30. #ifndef IFF_IFFPARSE_H
  31. #include <libraries/iffparse.h>
  32. #endif
  33.  
  34. /*****************************************************************************/
  35.  
  36. /*** STRUCTURES */
  37.  
  38. /* AHIAudioCtrlDrv */
  39. struct AHIAudioCtrlDrv
  40. {
  41.     struct AHIAudioCtrl ahiac_AudioCtrl;
  42.     ULONG          ahiac_Flags;        /* See below for definition */
  43.     struct Hook     *ahiac_SoundFunc;    /* AHIA_SoundFunc */
  44.     struct Hook     *ahiac_PlayerFunc;    /* AHIA_PlayerFunc */
  45.     Fixed          ahiac_PlayerFreq;    /* AHIA_PlayerFreq */
  46.     Fixed          ahiac_MinPlayerFreq;    /* AHIA_MinPlayerFreq */
  47.     Fixed          ahiac_MaxPlayerFreq;    /* AHIA_MaxPlayerFreq */
  48.     ULONG          ahiac_MixFreq;    /* AHIA_MixFreq */
  49.     UWORD          ahiac_Channels;    /* AHIA_Channels */
  50.     UWORD          ahiac_Sounds;        /* AHIA_Sounds */
  51.  
  52.     APTR          ahiac_DriverData;    /* Unused. Store whatever you want here. */
  53.  
  54.     struct Hook     *ahiac_MixerFunc;    /* Mixing routine Hook */
  55.     struct Hook     *ahiac_SamplerFunc;    /* Sampler routine Hook */
  56.     ULONG          ahiac_Obsolete;
  57.     ULONG          ahiac_BuffSamples;    /* Samples to mix this pass. */
  58.     ULONG          ahiac_MinBuffSamples;    /* Min. samples to mix each pass. */
  59.     ULONG          ahiac_MaxBuffSamples;    /* Max. samples to mix each pass. */
  60.     ULONG          ahiac_BuffSize;    /* Buffer size ahiac_MixerFunc needs. */
  61.     ULONG          ahiac_BuffType;    /* Buffer format (V2) */
  62.     BOOL        (*ahiac_PreTimer)();    /* Call before mixing (V4) */
  63.     void        (*ahiac_PostTimer)();    /* Call after mixing (V4) */
  64.  
  65. /* The rest is PRIVATE! Hands off! They may change any time.
  66.     [lots of private stuff] */
  67. };
  68.  
  69. /*** TAGS */
  70.  
  71. #define    AHIDB_UserBase    (AHI_TagBase+500)    /* Use for driver specific tags */
  72.  
  73.  
  74. /*** DEFS */
  75.  
  76.  /* AHIsub_AllocAudio return flags */
  77. #define AHISF_ERROR        (1<<0)
  78. #define AHISF_MIXING        (1<<1)
  79. #define AHISF_TIMING        (1<<2)
  80. #define AHISF_KNOWSTEREO    (1<<3)
  81. #define AHISF_KNOWHIFI        (1<<4)
  82. #define AHISF_CANRECORD     (1<<5)
  83. #define AHISF_CANPOSTPROCESS    (1<<6)
  84.  
  85. #define AHISB_ERROR        (0)
  86. #define AHISB_MIXING        (1)
  87. #define AHISB_TIMING        (2)
  88. #define AHISB_KNOWSTEREO    (3)
  89. #define AHISB_KNOWHIFI        (4)
  90. #define AHISB_CANRECORD        (5)
  91. #define AHISB_CANPOSTPROCESS    (6)
  92.  
  93.  /* AHIsub_Start() and AHIsub_Stop() flags */
  94. #define    AHISF_PLAY        (1<<0)
  95. #define    AHISF_RECORD        (1<<1)
  96.  
  97. #define    AHISB_PLAY        (0)
  98. #define    AHISB_RECORD        (1)
  99.  
  100.  /* ahiac_Flags */
  101. #define    AHIACF_VOL        (1<<0)
  102. #define    AHIACF_PAN        (1<<1)
  103. #define    AHIACF_STEREO        (1<<2)
  104. #define    AHIACF_HIFI        (1<<3)
  105. #define    AHIACF_PINGPONG        (1<<4)
  106. #define    AHIACF_RECORD        (1<<5)
  107. #define AHIACF_MULTTAB      (1<<6)            /* Private! */
  108.  
  109. #define    AHIACB_VOL        (0)
  110. #define    AHIACB_PAN        (1)
  111. #define    AHIACB_STEREO        (2)
  112. #define    AHIACB_HIFI        (3)
  113. #define    AHIACB_PINGPONG        (4)
  114. #define    AHIACB_RECORD        (5)
  115. #define AHIACB_MULTTAB      (6)            /* Private! */
  116.  
  117.  /* AHIsub_Set#? and AHIsub_(Un)LoadSound return code */
  118. #define AHIS_UNKNOWN        (~0)
  119.  
  120.  /* IFF chunk names for the audio mode file */
  121. #define ID_AHIM        MAKE_ID('A','H','I','M')    /* AHI Modes */
  122. #define ID_AUDN        MAKE_ID('A','U','D','N')    /* AUDio driver Name */
  123. #define ID_AUDD        MAKE_ID('A','U','D','D')    /* AUDio driver Data */
  124. #define ID_AUDM        MAKE_ID('A','U','D','M')    /* AUDio Mode */
  125.  
  126. #endif /* LIBRARIES_AHISUB_H */
  127.